#ifndef CASTITERADOR_CPP
#define CASTITERADOR_CPP

#include "CastIterador.h"

template <class T, class U>
CastIterador<T,U>::CastIterador(Puntero<Iterador<Puntero<T>>> toCast)
{
	m_ToCast = toCast;
}

template <class T, class U>
CastIterador<T,U>::~CastIterador()
{
}

template <class T, class U>
void CastIterador<T,U>::Reiniciar()
{
	m_ToCast->Reiniciar();
}

template <class T, class U>
bool CastIterador<T,U>::HayElemento() const
{
	return m_ToCast->HayElemento();
}

template <class T, class U>
const Puntero<U>& CastIterador<T,U>::ElementoActual() const
{
	m_Actual = m_ToCast->ElementoActual().Cast<U>();
	return m_Actual;
}

template <class T, class U>
void CastIterador<T,U>::Avanzar()
{
	m_ToCast->Avanzar();
}

#endif